package com.qch.edu.lagou.sort;

/**
 * @Author qch
 * @Date 2021/7/18
 * 1.冒泡排序O(2^n)
 * 做优化:内循环：已经移到右侧的就不用比较了
 *        外循环：如果不交换可以退出
 *
 */
public class BubbleSort {
    public static void main(String[] args) {
        int[] nums = new int[]{5, 8, 6, 3, 9, 2, 1, 7};

        for (int i = 0; i < nums.length - 1; i++) {//循环次数
            boolean isSort=true;//默认排好
            //已经移到右侧的就不用两两比较了
            for (int j = 0; j < nums.length - 1-i; j++) {
                //临时变量用于交换
                int tmp = 0;
                if (nums[j] > nums[j + 1]) {
                    isSort=false;
                    tmp = nums[j];
                    nums[j] = nums[j + 1];
                    nums[j + 1] = tmp;
                }
            }
            //排好则跳出
            if (isSort) {
                break;
            }
        }
        for (int n : nums) {
            System.out.println(n);
        }
    }

}
